package controle;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;



import DAO.EstadioDAO;
import DAO.DAOFactory;
import DAO.EstadioDAO;
import modelo.Estadio;
import modelo.Estadio;

/**
 * 
 * @author douglas_joaquim
 *
 *Classe controle estadio vai emplementar estadio 
 */
public class ControleEstadio implements Controle<Estadio> {
/**
 * Vai salvar o estadio
 */
	@Override
	public void salvar(Estadio e) throws Exception {
		ControleLocalizacao controleLocalizacao = new ControleLocalizacao();
		controleLocalizacao.salvar(e.getLocalizacao());
		e.setLocalizacao(controleLocalizacao.buscar(e.getLocalizacao()).get(0));
		if (e.getCadeiraGeral()==0) {
			throw new Exception("Cadeiras Gerais sao Obrigatarios");
		}
		if (e.getNome().equals("")) {
			throw new Exception("Nome do Estadio a obrigatario");
		}
		EstadioDAO estadioDAO = DAOFactory.getEstadioDAO();
		
		if(e.getIdEstadio()==0){
		estadioDAO.salvar(e);
		JOptionPane.showMessageDialog(null, "Seu Estadio foi salvo com sucesso");
		
		}else{
			estadioDAO.alterar(e);
			JOptionPane.showMessageDialog(null, "Seu Estadio foi alterado com sucesso");
		}
		
		
	}
	

	
/**
 * Vai exclir o estadio
 */
	@Override
	public void excluir(Estadio e) {
		
	EstadioDAO estadioDAO = DAOFactory.getEstadioDAO();
	
	ControleLocalizacao controleLocalizacao = new ControleLocalizacao();
	controleLocalizacao.excluir(e.getLocalizacao());
	estadioDAO.deletar(e);
		
		
	}
/**
 * Busca e cria uma lista de estadio por nome
 */
	@Override
	public List<Estadio> buscar(Estadio e) throws Exception {
		List<Estadio> estadios = new ArrayList<Estadio>();
		EstadioDAO estadioDAO = DAOFactory.getEstadioDAO();
			estadios =  estadioDAO.buscaEstadioPorNome(e);
		
		if ((e.getNome().equals("")&&(e.getIdEstadio()==0))) {
			throw new Exception("Nome ou Id sao obrigatarios");
		}
	
		
		return estadios;
	}
	/**
	 * Busca e cria uma lista de todos os estadios
	 */
	@Override
	public List<Estadio> buscarTodos(){
		List<Estadio> estadios = new ArrayList<Estadio>();
		EstadioDAO estadioDAO = DAOFactory.getEstadioDAO();
		estadios = estadioDAO.findAll();
		return estadios;

	}

}
